LINQ kullanarak şuna benzer bir şey deneyebilirsiniz: var değerleri = array.Skip (indeks) .Alınmış) .Sıralamak(); İndeks, ilk öğenin indeksidir ve n seçmek istediğiniz öğelerin sayısıdır. Örneğin. https://dotnetfiddle.net/Pk1rwY Yan not olarak. LINQ kullanmak, kodunuzun daha hızlı olacağı anlamına gelmez. Daha kompakt / okunabilir vb. Olacaktır. Kodunuzun ne kadar performanslı olduğunu değerlendirebilmek için BenchmarkDotNet gibi bir şey kullanmanız gerekir. | Linq çözümü yok: private static T [] Extract(T [] source, int fromIndex, int length) { eğer (null == kaynak) yeni ArgumentNullException (nameof (kaynak)); else if (fromIndex <0) yeni ArgumentOutOfRangeException (nameof (fromIndex), "From Index negatif olmamalıdır"); else if (uzunluk <0) yeni ArgumentOutOfRangeException (nameof (uzunluk), "Uzunluk negatif olmamalıdır"); eğer (fromIndex> = source.Length || uzunluk == 0) yeni T [0] döndür; T [] sonuç = yeni T [Matematik.Min (uzunluk, kaynak.Uzunluk - indeks'den)]; Array.Copy (kaynak, fromIndex, sonuç, 0, sonuç.Uzunluğu); dönüş sonucu; } Sonra çift [] imza = yeni çift [] {0, 1, 2, 3, 4, 5}; çift [] ret = Çıkar (imza, 3, 2); Console.Write (string.Join (",", ret)); Sonuç: 3, 4 | Sorunuzdan, .Take ve .Skip operatörlerinden yararlanmanız gerekir. var sonucu array.Skip (startingIndex) sökünüz (numberOfElements) =; Bu nedenle kodunuzdan, biraz farklı bir şey yapmaya, yani öğeleri toplamaya çalışıyorsunuz gibi görünüyor. .Sum operatörü burada yardımcı olabilir. | Aradığın cevap değil mi? C # arrays linq etiketli diğer sorulara göz atın veya kendi sorunuzu sorun.